{{>partial_header}}

using Polly;
{{#useRestSharp}}
using RestSharp;
{{/useRestSharp}}
{{#useHttpClient}}
using System.Net.Http;
{{/useHttpClient}}

namespace {{packageName}}.Client
{
    /// <summary>
    /// Configuration class to set the polly retry policies to be applied to the requests.
    /// </summary>
    public static class RetryConfiguration
    {
{{#useRestSharp}}
        /// <summary>
        /// Retry policy
        /// </summary>
        public static ISyncPolicy<RestResponse> RetryPolicy { get; set; }

        /// <summary>
        /// Async retry policy
        /// </summary>
        public static IAsyncPolicy<RestResponse> AsyncRetryPolicy { get; set; }
{{/useRestSharp}}
{{#useHttpClient}}
        /// <summary>
        /// Retry policy
        /// </summary>
        public static ISyncPolicy<HttpResponseMessage> RetryPolicy { get; set; }

        /// <summary>
        /// Async retry policy
        /// </summary>
        public static IAsyncPolicy<HttpResponseMessage> AsyncRetryPolicy { get; set; }
{{/useHttpClient}}
    }
}
